package main

import (
	"context"
	"encoding/base64"
	"fmt"

	"github.com/solsw/base64helper"
	"github.com/solsw/errorhelper"
	"gitlab.com/solsw/cloudru/auth"
	"gitlab.com/solsw/cloudru/secretmanager"
)

func versionsTest() error {
	if err := auth.VetToken(context.Background(), authToken); err != nil {
		return errorhelper.CallerError(err)
	}

	vo, err := secretmanager.GetAllVersions(context.Background(), authToken.AccessToken, "05dc3dbd-5436-494d-8c82-85de19dd19b5", 0, 0)
	if err != nil {
		return errorhelper.CallerError(err)
	}
	fmt.Println(len(vo.Versions))
	if len(vo.Versions) > 0 {
		fmt.Printf("%#v\n", vo)
	}

	v1, err := secretmanager.CreateVersion(context.Background(), authToken.AccessToken, "05dc3dbd-5436-494d-8c82-85de19dd19b5",
		&secretmanager.Payload{Data: "asdfgh"})
	if err != nil {
		return errorhelper.CallerError(err)
	}
	fmt.Printf("%#v\n", v1)

	v2, err := secretmanager.GetVersion(context.Background(), authToken.AccessToken, "05dc3dbd-5436-494d-8c82-85de19dd19b5", "1")
	if err != nil {
		return errorhelper.CallerError(err)
	}
	fmt.Printf("%#v\n", v2)

	p, err := secretmanager.GetPayload(context.Background(), authToken.AccessToken, "05dc3dbd-5436-494d-8c82-85de19dd19b5", "1")
	if err != nil {
		return errorhelper.CallerError(err)
	}
	fmt.Printf("%#v\n", p)
	decoded, err := base64helper.DecodeStringToString(base64.RawStdEncoding, p.Data)
	if err != nil {
		return errorhelper.CallerError(err)
	}
	fmt.Println(decoded)

	return nil
}
